/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ucb.ProjetoFinal.domain;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author DCBorges
 */
@Entity
@Table(name = "sdctb002_grpo_empo")
public class GrupoEmpreendimento implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected GrupoEmpreendimentoPK grupoEmpreendimentoPK;
    @Column(name = "NU_PRRDE_CNTCO")
    private Integer nuPrrdeCntco;
    @Size(max = 12)
    @Column(name = "NU_CONTRATO")
    private String nuContrato;
    @Column(name = "DT_ENVIO_CONTRATO")
    @Temporal(TemporalType.DATE)
    private Date dtEnvioContrato;
    @Column(name = "DT_ASNTA_CTRTO")
    @Temporal(TemporalType.DATE)
    private Date dtAsntaCtrto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "IC_SITUACAO_CTRTO")
    private char icSituacaoCtrto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NU_PARTICAO")
    private short nuParticao;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NU_ORDEM_GERAL")
    private int nuOrdemGeral;
    @Basic(optional = false)
    @NotNull
    @Column(name = "IC_RESERVA")
    private char icReserva;
    @Size(max = 12)
    @Column(name = "NU_LIVRO_FOLHA")
    private String nuLivroFolha;
    @JoinColumn(name = "CO_APF", referencedColumnName = "CO_APF", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Empreendimento empreendimento;
    @JoinColumn(name = "NU_SNQCL_GRPO_FMLR", referencedColumnName = "NU_SNQCL_GRPO_FMLR", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private GrupoFamiliar grupoFamiliar;

    public GrupoEmpreendimento() {
    }

    public GrupoEmpreendimento(GrupoEmpreendimentoPK grupoEmpreendimentoPK) {
        this.grupoEmpreendimentoPK = grupoEmpreendimentoPK;
    }

    public GrupoEmpreendimento(GrupoEmpreendimentoPK grupoEmpreendimentoPK, char icSituacaoCtrto, short nuParticao, int nuOrdemGeral, char icReserva) {
        this.grupoEmpreendimentoPK = grupoEmpreendimentoPK;
        this.icSituacaoCtrto = icSituacaoCtrto;
        this.nuParticao = nuParticao;
        this.nuOrdemGeral = nuOrdemGeral;
        this.icReserva = icReserva;
    }

    public GrupoEmpreendimento(int coApf, int nuSnqclGrpoFmlr) {
        this.grupoEmpreendimentoPK = new GrupoEmpreendimentoPK(coApf, nuSnqclGrpoFmlr);
    }

    public GrupoEmpreendimentoPK getGrupoEmpreendimentoPK() {
        return grupoEmpreendimentoPK;
    }

    public void setGrupoEmpreendimentoPK(GrupoEmpreendimentoPK grupoEmpreendimentoPK) {
        this.grupoEmpreendimentoPK = grupoEmpreendimentoPK;
    }

    public Integer getNuPrrdeCntco() {
        return nuPrrdeCntco;
    }

    public void setNuPrrdeCntco(Integer nuPrrdeCntco) {
        this.nuPrrdeCntco = nuPrrdeCntco;
    }

    public String getNuContrato() {
        return nuContrato;
    }

    public void setNuContrato(String nuContrato) {
        this.nuContrato = nuContrato;
    }

    public Date getDtEnvioContrato() {
        return dtEnvioContrato;
    }

    public void setDtEnvioContrato(Date dtEnvioContrato) {
        this.dtEnvioContrato = dtEnvioContrato;
    }

    public Date getDtAsntaCtrto() {
        return dtAsntaCtrto;
    }

    public void setDtAsntaCtrto(Date dtAsntaCtrto) {
        this.dtAsntaCtrto = dtAsntaCtrto;
    }

    public char getIcSituacaoCtrto() {
        return icSituacaoCtrto;
    }

    public void setIcSituacaoCtrto(char icSituacaoCtrto) {
        this.icSituacaoCtrto = icSituacaoCtrto;
    }

    public short getNuParticao() {
        return nuParticao;
    }

    public void setNuParticao(short nuParticao) {
        this.nuParticao = nuParticao;
    }

    public int getNuOrdemGeral() {
        return nuOrdemGeral;
    }

    public void setNuOrdemGeral(int nuOrdemGeral) {
        this.nuOrdemGeral = nuOrdemGeral;
    }

    public char getIcReserva() {
        return icReserva;
    }

    public void setIcReserva(char icReserva) {
        this.icReserva = icReserva;
    }

    public String getNuLivroFolha() {
        return nuLivroFolha;
    }

    public void setNuLivroFolha(String nuLivroFolha) {
        this.nuLivroFolha = nuLivroFolha;
    }

    public Empreendimento getEmpreendimento() {
        return empreendimento;
    }

    public void setEmpreendimento(Empreendimento empreendimento) {
        this.empreendimento = empreendimento;
    }

    public GrupoFamiliar getGrupoFamiliar() {
        return grupoFamiliar;
    }

    public void setGrupoFamiliar(GrupoFamiliar grupoFamiliar) {
        this.grupoFamiliar = grupoFamiliar;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (grupoEmpreendimentoPK != null ? grupoEmpreendimentoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof GrupoEmpreendimento)) {
            return false;
        }
        GrupoEmpreendimento other = (GrupoEmpreendimento) object;
        if ((this.grupoEmpreendimentoPK == null && other.grupoEmpreendimentoPK != null) || (this.grupoEmpreendimentoPK != null && !this.grupoEmpreendimentoPK.equals(other.grupoEmpreendimentoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.ucb.ProjetoFinal.domain.GrupoEmpreendimento[ grupoEmpreendimentoPK=" + grupoEmpreendimentoPK + " ]";
    }
    
}
